import axios from 'axios'
import { Loading, Message } from 'element-ui'
import qs from 'qs'
import { BACKEND_ROOT } from '../Contants';
axios.defaults.timeout = 5000; // 设置请求超时
// axios.defaults.withCredentials = true;
// axios.defaults.headers.post['Content-Type'] = 'application/json' // 改回以前的
// axios.defaults.headers.get['Content-Type'] = 'application/json'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8;' // 改回以前的
axios.defaults.baseURL = BACKEND_ROOT; // 默认基准url
// axios.defaults.baseURL = 'http://10.200.1.2:8080/enterprise'; // 默认基准url

// axios.defaults.withCredentials = true; // axios跨域携带Cookie

// let loading
// function startLoading () {
//   loading = Loading.service({
//     lock: true,
//     text: '加载中....',
//     background: 'rgba(0, 0, 0, 0.7)'
//   })
// }

// function endLoading () {
//   loading.close()
// }
// 请求拦截
// axios.interceptors.request.use(
//   (config) => {
//     // startLoading()
//     config.data = JSON.stringify(config.data);
//     config.headers = {
//       'Content-Type': 'application/x-www-form-urlencoded'
//     }
//     return config;
//   },
//   (error) => {
//     return Promise.reject(error)
//   }
// )

// //响应拦截器即异常处理
// axios.interceptors.response.use(response => {
//   endLoading()
//   return response
// }, err => {
//   Message.error(error.response.data)
//   endLoading()
//   if (err && err.response) {
//     switch (err.response.status) {
//       case 400:
//         Message.error('错误请求')
//         break;
//       case 401:
//         Message.error('未授权，请重新登录')
//         //清楚token
//         localStorage.removeItem('eToken')
//         //跳转到登录页面
//         router.push('/LOGIN')
//         break;
//       case 403:
//         Message.error('拒绝访问')
//         break;
//       case 404:
//         Message.error('请求错误,未找到该资源')
//         break;
//       case 405:
//         Message.error('请求方法未允许')
//         break;
//       case 408:
//         Message.error('请求超时')
//         break;
//       case 500:
//         Message.error('服务器端出错')
//         break;
//       case 501:
//         Message.error('网络未实现')
//         break;
//       case 502:
//         Message.error('网络错误')
//         break;
//       case 503:
//         Message.error('服务不可用')
//         break;
//       case 504:
//         Message.error('网络超时')
//         break;
//       case 505:
//         Message.error('http版本不支持该请求')
//         break;
//       default:
//         Message.error(`连接错误${err.response.status}`)
//     }
//   } else {
//     Message.error('连接到服务器失败')
//   }
//   return Promise.resolve(err.response)
// })

/**
 * 封装get方法
 * @param url
 * @param data
 * @returns {Promise}
 */

export function get(url, params = {}) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
                params: params
            })
            .then(response => {
                resolve(response.data);
            })
            .catch(err => {
                reject(err)
            })
    })
}


/**
 * 封装post请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function post(url, data) {
    return new Promise((resolve, reject) => {
        axios.post(url, qs.stringify(data), )
            .then(response => {
                resolve(response.data);
            }, err => {
                reject(err)
            })
    })
}


export default axios